home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / int14com.cq / int14com.c
Encoding:
Text File  |  1985-05-09  |  2.0 KB  |  62 lines

  1. /* Modified to operate with the ORCHID TECHNOLOGY PC-NET
  2.    NETWORKING SYSTEM - THE INT 14 IS USED AND ASSUMES 
  3.    BOTH MACHINES USED HAVE THE MODEM.COM INSTALLED AND 
  4.    THE ORASSIGN HAS BEEN USED TO REDIRECT THE COM1: PORT
  5.    CAUTION ***: MODEM LOCKING HAS NOT BEEN IMPLIMENTED
  6.    
  7.    QUESTIONS SHOULD BE DIRECTED TO MARK Z. KUMLER
  8.     HOME NUMBER: (606) 291-0092
  9.      OR JUST RESPOND TO ID0870 AND I'LL GET BACK TO YOU
  10.  
  11. */
  12. /* Communications Program for C86
  13.    by Earl C. Terwilliger Jr
  14.    Version   1.0   05-02-1983
  15.                    */
  16. #include "stdio.h"
  17. #define LF    10
  18. #define PORT  0
  19. #define TRUE  1
  20. main() {
  21.  unsigned flags = 0;
  22.  struct regval { unsigned ax,bx,cx,dx,si,di,ds,es; };
  23.  struct regval srv,rrv;
  24.  srv.dx = PORT;               /* RS232  port      */
  25.  srv.ax = 0X005A;              /* Initialize
  26.                          Parms 150,E,1,7  */
  27.  sysint(20,&srv,&rrv);              /* INT 14H          */
  28. srv.dx=PORT;
  29. srv.ax=0X0707;                /* Set Baud to 1200      */
  30.  sysint(20,&srv,&rrv);
  31.  while (TRUE) {
  32.     srv.ax=0X0400;
  33.     srv.dx=PORT;
  34.     sysint(20,&srv,&rrv);
  35.    while (rrv.ax) {
  36.      srv.ax = 0X0200;              /* Receive a character */
  37.      srv.dx = PORT;
  38.      sysint(20,&srv,&rrv);          /* INT 14H         */
  39.      putchar(rrv.ax);              /* Display a character */
  40.      srv.ax = 0X0400;              /* Number of characters */
  41.      srv.dx = PORT;
  42.      sysint(20,&srv,&rrv);          /* INT 14H         */
  43.    }
  44.   srv.ax = 0X0100;             /* Test Keyboard buffer */
  45.   flags = sysint(22,&srv,&rrv);      /* INT 16H         */
  46.   flags &= 0X0040;             /* Mask out all but Z     */
  47.   while (!flags)  {
  48.     srv.ax = 0;              /* Get a Keyboard char  */
  49.     sysint(22,&srv,&rrv);         /* INT 16H         */
  50.     srv.ax = rrv.ax & 0X01FF;         /* Character to send     */
  51.     srv.ax |=  0X0100;             /* Rs232 send function  */
  52.     srv.dx = PORT;
  53.     putchar(srv.ax);
  54.     sysint(20,&srv,&rrv);         /* INT 14H         */
  55.     if (srv.ax == 269) {printf("\n");}
  56.     srv.ax = 0X0100;             /* Test Keyboard buffer */
  57.     flags = sysint(22,&srv,&rrv);     /* INT 16H         */
  58.     flags &=  0X0040;             /* Mask out all but Z     */
  59.   }
  60.  }
  61. }
  62.